package ws_struct

import "im_sys/pkg/constants"

// 定义聊天中的消息格式
type (
	// Msg 定义聊天消息的具体格式
	Msg struct {
		constants.MType `mapstructure:"m_type"` // github.com/mitchellh/mapstructure库将interface{}解析为具体类型
		Content         string                  `mapstructure:"content"`
	}

	// Chat 定义server发送的Message中的Data的格式
	Chat struct {
		ConversationId string             `mapstructure:"conversation_id"`
		ChatType       constants.ChatType `mapstructure:"chat_type"` // 聊天类型（私聊、群聊）
		SendId         string             `mapstructure:"send_id"`
		RecvId         string             `mapstructure:"recv_id"`
		Msg            `mapstructure:"msg"`
		SendTime       int64 `mapstructure:"send_time"`
	}

	// PushMsg 定义了发送者推给kafka的消息格式
	PushMsg struct {
		ConversationId string             `mapstructure:"conversation_id"`
		ChatType       constants.ChatType `mapstructure:"chat_type"` // 聊天类型（群聊/私聊）
		SendId         string             `mapstructure:"send_id"`
		RecvId         string             `mapstructure:"recv_id"`
		SendTime       int64              `mapstructure:"send_time"`
		MType          constants.MType    `mapstructure:"m_type"` // 聊天消息类型（文字/图片/视频）
		Content        string             `mapstructure:"content"`
	}
)
